package com.practice.httputils.controller;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import sun.misc.BASE64Decoder;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * @Description : http测试
 * @Author : guxuemin
 * @Version : V1.0.0
 * @Date : 2021/9/12 18:04
 */
@RestController
@RequestMapping(value = "/test")
@Slf4j
public class HttpTest {
    @GetMapping("/simple/post")
    public String testHttpPost() throws IOException {
        // 创建HttpClient对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        try {
            // 创建HttpPost对象
            HttpPost httpPost = new HttpPost("http://172.16.6.86:5015/file/upload");
//            HttpPost httpPost = new HttpPost("http://127.0.0.1:5015/file/upload");
            // 设置请求参数
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
//            File file = new File("F:\\tmp\\test.txt");

            // 文件的方式上传文件
//            builder.setCharset(StandardCharsets.UTF_8).addBinaryBody("file", new FileInputStream(file),
//                    ContentType.MULTIPART_FORM_DATA, file.getName());
            // base64转byte流上传文件, 主要不要带data:xxx;Base64这些字符,这种标记字符需要删除,只传文件内容
            String base64Pic = "/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMuaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0OCA3OS4xNjQwMzYsIDIwMTkvMDgvMTMtMDE6MDY6NTcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY4RjcwRTk1NkIxNTExRUFCMTBCOTdENjQwOUE5M0JFIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY4RjcwRTk0NkIxNTExRUFCMTBCOTdENjQwOUE5M0JFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0RENTEyRkQ2QjE1MTFFQUIxMEI5N0Q2NDA5QTkzQkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0RENTEyRkU2QjE1MTFFQUIxMEI5N0Q2NDA5QTkzQkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkL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";
            BASE64Decoder decode = new BASE64Decoder();
            byte[] bytes = decode.decodeBuffer(base64Pic);
           bytes = FileUtil.readBytes("F:\\test\\picture\1.jpg");
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
            builder.setCharset(StandardCharsets.UTF_8).addBinaryBody("file", byteArrayInputStream,
                    ContentType.MULTIPART_FORM_DATA, "1.jpg");
            builder.addTextBody("isHttps", "true", ContentType.MULTIPART_FORM_DATA);
            HttpEntity httpEntity = builder.build();
            httpPost.setEntity(httpEntity);
            httpPost.addHeader("bucket", "test");
            // 发送请求
            CloseableHttpResponse response = httpClient.execute(httpPost);
            // 解析响应信息
            if (response.getStatusLine().getStatusCode() == 200) {
                HttpEntity responseEntity = response.getEntity();
                log.info(EntityUtils.toString(responseEntity));
            }
            return "success";
        } finally {
            // 释放连接
            try {
                httpClient.close();
            } catch (Exception e) {
                log.error("test error", e);
            }
        }
    }

    @GetMapping("/docker")
    public String testDocker() {
        System.out.println("docker test");
        return "docker test";
    }
}
